supermercado <- c("manzana", "pera", "uva")
gsub("a", "A", paste("mi", supermercado))[1] "mi mAnzAnA" "mi perA" "mi uvA"
Santiago Sotelo y Nadia Duffó
¿Cómo funciona R?
“Todo lo que existe en R es un objeto, todo lo que sucede en R es una función.”
-John Chambers
R es un lenguaje de programación que tradicionalmente opera como funciones anidadas. Por ejemplo:
[1] "mi mAnzAnA" "mi perA" "mi uvA"
Se podría comparar con una matrioska o muñeca rusa en la medida en que una función encapsula a otra función y así sucesivamente ejecutándose de adentro hacia afuera.
La manera moderna de programar en R es utilizando el operador %>% o pipeta. El mismo ejemplo se vería así:
library(dplyr)
supermercado <- c("manzana", "pera", "uva")
supermercado %>%
paste("mi", .) %>%
gsub("a", "A", .)[1] "mi mAnzAnA" "mi perA" "mi uvA"
La pipeta se puede importar desde el paquete {dplyr} y se puede comparar con una tubería que pasa el resultado hacia la siguiente función, es decir, primero llamamos al objeto supermercado y luego aplicamos la función paste, y luego aplicamos la función gsub. Esta manera de programar se lee de arriba a abajo. El atajo para escribir la pipeta es ctrl + shift + m
En la práctica utilizaremos una combinación de la manera tradicional y moderna al momento de programar en R.
Para iniciar un proyecto de R nos dirigiremos a la pestaña
File < New Project < New Directory < New Project < Create Project
Luego creamos un nuevo archivo R markdown (.Rmd), nos dirigimos a la pestaña
File < New File < R Markdown < Ok
Para crear un bloque de código en R podemos hacer click en el ícono verde con la letra C en la barra superior o utilizar el atajo ctrl + alt + i
Ahora instalamos los paquetes necesarios para el ejercicio de hoy.
En esta clase, se importa la base de datos filmaffinity que contiene información sobre filmes publicados entre 1900 y 2020. Para mayor información revise el enlace.
Una vez importada la base de datos a la sesión, es necesario explorarla para familiarizarnos con la información.
La base de filmes cuenta con 119,003 observaciones y 9 variables.
La mayoría de observaciones corresponden al tipo filme con 73,651 observaciones.
Rows: 119,003
Columns: 9
$ ...1 <dbl> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,…
$ Título <chr> "'49-'17", "10,000 Years B.C. (C)", "1812", "20.000 legua…
$ Año <dbl> 1917, 1916, 1912, 1907, 1909, 1916, 1912, 1916, 1908, 191…
$ País <chr> "Estados Unidos", "Estados Unidos", "Rusia", "Francia", "…
$ Dirección <chr> "Ruth Ann Baldwin", "Willis H. O'Brien", "Vasili Goncharo…
$ Reparto <chr> "Joseph W. Girard, Leo Pierson, William Dyer, Mattie Witt…
$ Nota <chr> "--", "5,1", "--", "6,0", "5,3", "--", "5,4", "--", "4,6"…
$ `Tipo filme` <chr> "Película", "Cortometraje", "Película", "Cortometraje", "…
$ Género <chr> "Western", "Comedia", "Drama", "Fantástico", "Comedia", "…
En la base de datos se tienen las variables ...1, Título, Año, País, Dirección, Reparto, Nota, Tipo filme, Género.
La primera columna que corresponde al index del filme en la tabla no tiene un nombre inteligible, por lo que procedemos a renombrar esta columna.
La variable Nota actualmente figura como character en vez de numeric dado que el punto decimal está representado como una , y los valores perdidos como --. Ajustemos esta variable para poder utilizarla como variable numérica.
filmaffinity3 <-
filmaffinity2 %>%
mutate(
Nota = gsub(",", ".", Nota),
Nota = gsub("--", NA, Nota),
Nota = as.numeric(Nota),
)
filmaffinity3, por . en la columna Nota.
-- por el valor perdido NA en la columna Nota.
Luego de aplicar este proceso podemos realizar operaciones aritméticas con la variable Nota:
tab1 <-
filmaffinity3 %>%
group_by(`Tipo filme`) %>%
summarise(Nota_promedio = mean(Nota, na.rm =T))
tab1El promedio de los filmes, considerando los puntuados, para el caso de miniserie es de 6.1.
Finalmente, para exportar la tabla sobre la nota promedio de los filmes a excel se puede utilizar la siguiente función del paquete {rio}:
Responda las siguientes preguntas: